package com.codelathe.gwt.client;

/*
 *  Listener interface for Sound objects managed by SoundManager.
 *  Provides various callback functions for different
 *  states of sound play
 */
public interface SoundListener{
	
	/**
     * Called when a sound/song is playing.
     * Call can be used to update the song position display.
     */
	public void whilePlaying();
	
	/**
     * Called when a sound/song is loading.
     * Call can be used to update download progress.
     */
	public void whileLoading();
	
	/**
     * Called when a sound/song is loaded completely.
     */
	public void onLoadComplete();

	/**
     * Called when a sound/song starts to play.
     */
	public void onPlayStart();
	
	/**
     * Called when a sound/song is stopped by a call to stop() function.
     */
	public void onPlayStop();

	/**
     * Called when a sound/song is paused by a call to pause() function.
     */
	public void onPause();

	/**
     * Called when a sound/song is resumed from pause by a call to resume() function.
     */
	public void onResume();
	
	/**
     * Called when a sound/song has finished playing.
     */
	public void onFinish();

	/**
     * Called when a sound/song is about to finish. 
     * Default time before call is 5000 milli-seconds.
     * The time before finish can be changed by calling onBeforeFinishTime 
     * function in SoundManager 
     */
	public void onBeforeFinish();
	
	/**
     * Called when a sound/song is finishing its play. 
     */	
	public void onBeforeFinishComplete();
	
	/**
     * Called when a id3 information is loaded/added. 
     */	
	public void onID3Available();
}